﻿using Abp.Application.Services.Dto;
using System;
using System.ComponentModel;

namespace LpbPrj.Client.Reports.Dtos
{
    public class ReportListDto : EntityDto<long>, INotifyPropertyChanged
    {
        public void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
            }
        }
        public event PropertyChangedEventHandler PropertyChanged;

        public long StudyId { get; set; }
        public int PatientId { get; set; }
        public string ReportTemplateGuid { get; set; }

        public string ScanDevice { get; set; }
        public long ScanResultId { get; set; }


        /***************************OCT***************************/
        public string ReportFundusImage1 { get; set; }
        public string ReportFundusImage2 { get; set; }
        public string ReportOCTImage1 { get; set; }
        public string ReportOCTImage2 { get; set; }
        public string ReportFundusImage1Dt { get; set; }
        public string ReportFundusImage2Dt { get; set; }
        public string ReportOCTImage1Dt { get; set; }
        public string ReportOCTImage2Dt { get; set; }

        /***************************BScan/UScan***************************/
        //  图像对应的检查结果的Id
        public string ScanResultGuid1 { get; set; }
        public string ScanResultGuid2 { get; set; }
        public string ScanResultGuid3 { get; set; }
        public string ScanResultGuid4 { get; set; }
        public string ScanResultGuid5 { get; set; }
        public string ScanResultGuid6 { get; set; }
        public string ScanResultGuid7 { get; set; }
        public string ScanResultGuid8 { get; set; }
        //  原图
        public string ReportImage1 { get; set; }
        public string ReportImage2 { get; set; }
        public string ReportImage3 { get; set; }
        public string ReportImage4 { get; set; }
        public string ReportImage5 { get; set; }
        public string ReportImage6 { get; set; }
        public string ReportImage7 { get; set; }
        public string ReportImage8 { get; set; }
        //  标签图
        public string ReportTagImage1 { get; set; }
        public string ReportTagImage2 { get; set; }
        public string ReportTagImage3 { get; set; }
        public string ReportTagImage4 { get; set; }
        public string ReportTagImage5 { get; set; }
        public string ReportTagImage6 { get; set; }
        public string ReportTagImage7 { get; set; }
        public string ReportTagImage8 { get; set; }
        //  A线
        public string ReportAlineImage1 { get; set; }
        public string ReportAlineImage2 { get; set; }
        public string ReportAlineImage3 { get; set; }
        public string ReportAlineImage4 { get; set; }
        public string ReportAlineImage5 { get; set; }
        public string ReportAlineImage6 { get; set; }
        public string ReportAlineImage7 { get; set; }
        public string ReportAlineImage8 { get; set; }
        //  带测量图
        public string ReportMeasureImage1 { get; set; }
        public string ReportMeasureImage2 { get; set; }
        public string ReportMeasureImage3 { get; set; }
        public string ReportMeasureImage4 { get; set; }
        public string ReportMeasureImage5 { get; set; }
        public string ReportMeasureImage6 { get; set; }
        public string ReportMeasureImage7 { get; set; }
        public string ReportMeasureImage8 { get; set; }
        //  图像对应时间
        public string ReportImage1Dt { get; set; }
        public string ReportImage2Dt { get; set; }
        public string ReportImage3Dt { get; set; }
        public string ReportImage4Dt { get; set; }
        public string ReportImage5Dt { get; set; }
        public string ReportImage6Dt { get; set; }
        public string ReportImage7Dt { get; set; }
        public string ReportImage8Dt { get; set; }
        //  眼位
        public int ScanDirection1 { get; set; }
        public int ScanDirection2 { get; set; }
        public int ScanDirection3 { get; set; }
        public int ScanDirection4 { get; set; }
        public int ScanDirection5 { get; set; }
        public int ScanDirection6 { get; set; }
        public int ScanDirection7 { get; set; }
        public int ScanDirection8 { get; set; }
        //  是否右眼
        public int ScanEyeRight1 { get; set; }
        public int ScanEyeRight2 { get; set; }
        public int ScanEyeRight3 { get; set; }
        public int ScanEyeRight4 { get; set; }
        public int ScanEyeRight5 { get; set; }
        public int ScanEyeRight6 { get; set; }
        public int ScanEyeRight7 { get; set; }
        public int ScanEyeRight8 { get; set; }
        //  探头类型
        public int ScanProbe1 { get; set; }
        public int ScanProbe2 { get; set; }
        public int ScanProbe3 { get; set; }
        public int ScanProbe4 { get; set; }
        public int ScanProbe5 { get; set; }
        public int ScanProbe6 { get; set; }
        public int ScanProbe7 { get; set; }
        public int ScanProbe8 { get; set; }
        //  增益
        public int ScanGain1 { get; set; }
        public int ScanGain2 { get; set; }
        public int ScanGain3 { get; set; }
        public int ScanGain4 { get; set; }
        public int ScanGain5 { get; set; }
        public int ScanGain6 { get; set; }
        public int ScanGain7 { get; set; }
        public int ScanGain8 { get; set; }

        /***************************BScan属性***************************/


        /***************************UScan属性***************************/
        //  是否暗室
        public bool UScanDarkRoom1 { get; set; }
        public bool UScanDarkRoom2 { get; set; }
        public bool UScanDarkRoom3 { get; set; }
        public bool UScanDarkRoom4 { get; set; }
        public bool UScanDarkRoom5 { get; set; }
        public bool UScanDarkRoom6 { get; set; }
        public bool UScanDarkRoom7 { get; set; }
        public bool UScanDarkRoom8 { get; set; }
        //  是否Horiz
        public bool UScanHoriz1 { get; set; }
        public bool UScanHoriz2 { get; set; }
        public bool UScanHoriz3 { get; set; }
        public bool UScanHoriz4 { get; set; }
        public bool UScanHoriz5 { get; set; }
        public bool UScanHoriz6 { get; set; }
        public bool UScanHoriz7 { get; set; }
        public bool UScanHoriz8 { get; set; }

        /***************************AScan***************************/
        //  原图
        public string ReportImageR { get; set; }
        public string ReportImageL { get; set; }
        //  图像对应时间
        public string ReportImageRDt { get; set; }
        public string ReportImageLDt { get; set; }
        //  增益
        public int ScanGainR { get; set; }
        public int ScanGainL { get; set; }

        ////////////IOL计算需要常数///////////////
        public double? RIOLA { get; set; }
        public double? RIOLDR { get; set; }
        public double? RIOLK1 { get; set; }
        public double? RIOLK2 { get; set; }
        public double? RIOLAL { get; set; }
        public double? RIOLAC { get; set; }
        public bool RIOLSRKII { get; set; }
        public bool RIOLSRKT { get; set; }
        public bool RIOLHolladay { get; set; }
        public bool RIOLBinkhorstII { get; set; }
        public bool RIOLHofferQ { get; set; }
        public bool RIOLHaigis { get; set; }
        public string RIOLFormula1 { get; set; }
        public string RIOLFormula2 { get; set; }
        public string RIOLFormula3 { get; set; }

        ////////////IOLEx计算需要常数///////////////
        public double? RIOLExA0 { get; set; }
        public double? RIOLExA1 { get; set; }
        public double? RIOLExA2 { get; set; }
        public double? RIOLExA3 { get; set; }
        public double? RIOLExDR { get; set; }
        public double? RIOLExK1 { get; set; }
        public double? RIOLExK2 { get; set; }
        public double? RIOLExAL { get; set; }
        public double? RIOLExAC { get; set; }
        public string RIOLExFormula { get; set; }

        ////////////IOL计算需要常数///////////////
        public double? LIOLA { get; set; }
        public double? LIOLDR { get; set; }
        public double? LIOLK1 { get; set; }
        public double? LIOLK2 { get; set; }
        public double? LIOLAL { get; set; }
        public double? LIOLAC { get; set; }
        public bool LIOLSRKII { get; set; }
        public bool LIOLSRKT { get; set; }
        public bool LIOLHolladay { get; set; }
        public bool LIOLBinkhorstII { get; set; }
        public bool LIOLHofferQ { get; set; }
        public bool LIOLHaigis { get; set; }
        public string LIOLFormula1 { get; set; }
        public string LIOLFormula2 { get; set; }
        public string LIOLFormula3 { get; set; }

        ////////////IOLEx计算需要常数///////////////
        public double? LIOLExA0 { get; set; }
        public double? LIOLExA1 { get; set; }
        public double? LIOLExA2 { get; set; }
        public double? LIOLExA3 { get; set; }
        public double? LIOLExDR { get; set; }
        public double? LIOLExK1 { get; set; }
        public double? LIOLExK2 { get; set; }
        public double? LIOLExAL { get; set; }
        public double? LIOLExAC { get; set; }
        public string LIOLExFormula { get; set; }



        /// <summary>
        /// 所见
        /// </summary>
        public string ScanObs { get; set; }
        /// <summary>
        /// 提示
        /// </summary>
        public string ScanIns { get; set; }
        /// <summary>
        /// 描述
        /// </summary>
        public string Description { get; set; }


        public DateTime rptCreationTime { get; set; }

        public string CreationDate { get; set; }
        public string CreationDateTime { get; set; }
        public DateTime CreationTime { get; set; }


        public ReportListDto()
        {
            ScanDirection1 = -1;
            ScanDirection2 = -1;
            ScanDirection3 = -1;
            ScanDirection4 = -1;
            ScanDirection5 = -1;
            ScanDirection6 = -1;
            ScanDirection7 = -1;
            ScanDirection8 = -1;

            ScanProbe1 = -1;
            ScanProbe2 = -1;
            ScanProbe3 = -1;
            ScanProbe4 = -1;
            ScanProbe5 = -1;
            ScanProbe6 = -1;
            ScanProbe7 = -1;
            ScanProbe8 = -1;

            ScanGain1 = -1;
            ScanGain2 = -1;
            ScanGain3 = -1;
            ScanGain4 = -1;
            ScanGain5 = -1;
            ScanGain6 = -1;
            ScanGain7 = -1;
            ScanGain8 = -1;

            ScanEyeRight1 = -1;
            ScanEyeRight2 = -1;
            ScanEyeRight3 = -1;
            ScanEyeRight4 = -1;
            ScanEyeRight5 = -1;
            ScanEyeRight6 = -1;
            ScanEyeRight7 = -1;
            ScanEyeRight8 = -1;
        }
    }
}
